package com.css.sword.knowing.toolkit.datetime;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
* @author 作者 E-mail:caihx@css.com.cn
* @date 创建时间：2017年3月21日 下午4:06:12
* @version 1.0
*/
/**
 * @author chxch
 *
 */
public class CssDateTimeUtil {

	public static String DATE_PATTERN_1 = "yyyy/MM/dd";// 定义标准日期格式1
	public static String DATE_PATTERN_2 = "yyyy-MM-dd";// 定义标准日期格式2
	public static String DATE_PATTERN_3 = "yyyy/MM/dd HH:mm:ss";// 定义标准日期格式3，带有时间
	public static String DATE_PATTERN_4 = "yyyy/MM/dd HH:mm:ss E";// 定义标准日期格式4，带有时间和星期
	public static String DATE_PATTERN_5 = "yyyy年MM月dd日 HH:mm:ss E";// 定义标准日期格式5，带有时间和星期
	public static String DATE_PATTERN_6 = "yyyy-MM-dd HH:mm:ss.SSS";// 定义标准日期格式6，带有时间，带毫秒
	public static String DATE_PATTERN_7 = "yyyy/MM/dd HH:mm:ss.SSS";// 定义标准日期格式7，带有时间，带毫秒
	public static String DATE_PATTERN_MY = "yy-MM-dd";// 定义标准日期格式 used in parse

	/**
	 * 获取当前时间
	 * 
	 * @return 返回格式为yyyy-MM-dd HH:mm:ss.SSS 的时间串
	 */
	public static String getCurrentTime() {
		SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN_6);
		return df.format(Calendar.getInstance().getTimeInMillis());
	}

	/**
	 * 获取当前时间
	 * 
	 * @param format
	 *            时间格式
	 * @return 字符串类型时间
	 */
	public static String getCurrentTime(String format) {
		SimpleDateFormat df = null;
		if (null != format && !format.isEmpty())
			df = new SimpleDateFormat(format);
		else
			df = new SimpleDateFormat(DATE_PATTERN_6);

		return df.format(Calendar.getInstance().getTimeInMillis());
	}

	/**
	 * 将long型时间转换成字符串型
	 * 
	 * @param format
	 *            时间格式
	 * @param date
	 *            long型的时间
	 * @return 时间字符串
	 */
	public static String longToString(String format, long date) {
		SimpleDateFormat df = null;
		if (null != format && !format.isEmpty())
			df = new SimpleDateFormat(format);
		else
			df = new SimpleDateFormat(DATE_PATTERN_6);

		return df.format(new Date(date));
	}

	/**
	 * 将时间字符串转换成long型
	 * 
	 * @param format
	 *            时间格式
	 * @param timeStr
	 *            时间字符串
	 * @return long型时间
	 */
	public static long stringToLong(String format, String timeStr) {
		SimpleDateFormat df = null;
		if (null != format && !format.isEmpty())
			df = new SimpleDateFormat(format);
		else
			df = new SimpleDateFormat(DATE_PATTERN_6);

		try {
			return df.parse(timeStr).getTime();
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return 0;
	}
}
